<?php
declare (strict_types = 1);

namespace app\validate;

use think\Validate;

class SignUp extends Validate
{
    /**
     * 定义验证规则
     * 格式：'字段名' =>  ['规则1','规则2'...]
     *
     * @var array
     */
    protected $rule = [
        'active_id'=>['require'],
        'group_tag'=>['require'],
        'ins_id'=>['require'],
        'student_id'=>['require'],
        'title'=>['require'],
        'media_url'=>['checkMedia:thinkphp']
    ];
    protected $scene=[
        'search'=>['active_id'],
        'insert'=>['active_id','group_tag','ins_id','student_id','title','media_url']
    ];
    /**
     * 定义错误信息
     * 格式：'字段名.规则名' =>  '错误信息'
     *
     * @var array
     */
    protected $message = [
        'active_id.require'=>'请选择活动',
        'group_tag.require'=>'分组不能为空',
        'ins_id.require'=>'报名机构不能为空',
        'student_id.require'=>'至少选择一个报名选手',
        'title.require'=>'参赛作品名称不能为空',
        'media_url.checkMedia'=>'请上传背景素材'
    ];

    /**根据条件判断素材地址
     * @param $value
     * @param $rule
     * @param array $data
     * @return bool
     */
    protected function checkMedia($value,$rule,array $data=[]): bool
    {
        if($data['media_type']!=0 && $value==''){
            return false;
        }else{
            return true;
        }
    }
}
